Modern integrated circuits typically include thousands of components having complex interrelationships. These circuits are generally designed using highly automated processes known as electronic design automation (EDA). EDA begins from a functional specification provided in a hardware description language (HDL) and continues through the specification of a circuit design including the specification of elementary circuit components called cells, the physical arrangement of the cells, and the wiring that interconnects the cells.
EDA can be divided into a series of stages such as synthesis, placement, routing, and engineering change order (ECO) processing. Each of these steps can involve selecting cells from a library of cells. Typically, a very large number of different circuit designs using various cell combinations can meet a functional specification for a circuit.